package Controlador;

import Modelo.Listas;
import Reportes.ReporteAsigChofer;
import Vista.Mensajes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.util.Date;

public class ControladorReporteAsigChofer implements ActionListener {

    private ReporteAsigChofer AsigChof;
    private Listas list;

    public ControladorReporteAsigChofer(Listas lis) {
        list = lis;
        AsigChof = new ReporteAsigChofer();
        AsigChof.agregarListener(this);
        AsigChof.setVisible(true);
        cargarCombo();
    }

    // Sirve para cargar el combo con la lista de choferes
    private void cargarCombo() {
        int fila;
        String ced;
        for (fila = 0; fila < list.getListaChoferes().size(); fila++) {
            ced = list.getListaChoferes().get(fila).getCedula();
            AsigChof.getCmbCedula().addItem(ced);
        }
    }

    //sirve para llenar los textos y tabla a partir del combo
    private void llenarTextos() {
        String ced, nom, soc, coop, dest, placa, tipo, fecha;
        ced = AsigChof.getCmbCedula().getSelectedItem().toString();
        for (int i = 0; i < list.getListaChoferes().size(); i++) {
            if (list.getListaChoferes().get(i).getCedula().equals(ced)) {
                nom = list.getListaChoferes().get(i).getNombres();
                soc = list.getListaChoferes().get(i).getCISocio();
                AsigChof.getTxtNombre().setText(nom);

                for (int j = 0; j < list.getListaSocio().size(); j++) {
                    if (list.getListaSocio().get(j).getCedula().equals(soc)) {
                        soc = soc + " - " + list.getListaSocio().get(j).getNombre();
                        coop = list.getListaSocio().get(j).getCodCoop();
                        AsigChof.getTxtSocio().setText(soc);
                        for (int k = 0; k < list.getListaCoop().size(); k++) {
                            if (list.getListaCoop().get(k).getRifC().equals(coop)) {
                                coop = coop + " - " + list.getListaCoop().get(k).getNombreC();
                                AsigChof.getTxtCooperativa().setText(coop);
                            }
                        }
                    }
                }
            }
        }
        for (int fila = 0; fila < list.getListaViajes().size(); fila++) {
            if (list.getListaViajes().get(fila).getCiEmpleado().equals(ced)) {
                DateFormat df = DateFormat.getDateInstance();
                fecha = df.format(list.getListaViajes().get(fila).getFechaSalida());
                dest = list.getListaViajes().get(fila).getDestino();
                placa = list.getListaViajes().get(fila).getPlacaVehiculo();
                for (int t = 0; t < list.getListaUnidadT().size(); t++) {
                    if (list.getListaUnidadT().get(t).getPlaca().equals(placa)) {
                        tipo = list.getListaUnidadT().get(t).getDescripcion();
                        AsigChof.getjTableAsigChofer().setValueAt(tipo, fila, 3);
                    }
                }
                AsigChof.getjTableAsigChofer().setValueAt(dest, fila, 0);
                AsigChof.getjTableAsigChofer().setValueAt(fecha, fila, 1);
                AsigChof.getjTableAsigChofer().setValueAt(placa, fila, 2);
            } 
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(AsigChof.getCmbCedula())) {
            llenarTextos();
        }
    }
}
